//----------------------------------------------------------------------------------
// CRenderProcess class
// Author: Oscar Serrano
//
// Description: 03/12/12
// 
//----------------------------------------------------------------------------------


#pragma once
#ifndef RENDER_PROCESS_H
#define RENDER_PROCESS_H

#include "Process/Process.h"


class CRenderManager;
class CFontManager;
class CObject3D;
class CRenderableVertexs;
class CTexture;

class CRenderProcess: public CProcess
{
public:
	CRenderProcess							(): CProcess(), m_pCameraObject(NULL), m_pFPSCamera(NULL), 
												m_pThPSCamera(NULL), m_pCameraObject2(NULL), m_bMovingSide(false), 
												m_pTestCamera(NULL), m_bSphereVisible(false), m_pSphereObject(NULL), 
												m_RV(NULL), m_RV2(NULL), m_Texture(NULL)
												{}
	~CRenderProcess							();
	void					Init			();
	void					DeInit			();
	void					Update			(float dt);
	void					RenderScene		(CRenderManager* RM);
	void					RenderScene2D	(CRenderManager* RM, CFontManager* FM);
	uint32					RenderDebugInfo	(CRenderManager* RM, CFontManager* FM, float FPS);

private:

	bool					m_bMovingSide;
	bool					m_bSphereVisible;
	CObject3D*				m_pSphereObject;


	CObject3D*				m_pCameraObject;
	CObject3D*				m_pCameraObject2;
	CCamera*				m_pFPSCamera;
	CCamera*				m_pThPSCamera;

	CCamera*				m_pTestCamera;
	CRenderableVertexs		*m_RV;
	CRenderableVertexs		*m_RV2;
	CTexture				*m_Texture;
	
};

#endif //RENDER_PROCESS_H

